home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / dvglue.arc / TVAPI.H < prev    next >
C/C++ Source or Header  |  1990-01-09  |  26KB  |  601 lines

  1. /*
  2. **      TVAPI.H - types and function prototypes.
  3. **    IBM Personal Computer - TopView C Interface Header File.
  4. **    Written for Borland Turbo C v1.5.
  5. */
  6.  
  7. #include <alloc.h>
  8. #include <dos.h>
  9.  
  10. typedef unsigned char  BYTE;  /* 8-bit value */
  11. typedef unsigned short WORD;  /* 16-bit value */
  12. typedef unsigned long DWORD;  /* 32-bit value */
  13. typedef void far *OBJECT;     /* object handle */
  14. #define OBJSEG FP_SEG         /* we often need only the segment of obj handle */
  15. #define MK_OBJ(seg) (OBJECT)MK_FP(seg,0) /* sometimes have to build an obj handle */
  16.  
  17. /***********************************************************/
  18. /* functions that are implemented inline                   */
  19. /***********************************************************/
  20.  
  21. #define TVpause()     _AX = 0x1000, geninterrupt(0x15)
  22. #define TVostack()    _AX = 0x101A, geninterrupt(0x15)
  23. #define TVbegincrit() _AX = 0x101B, geninterrupt(0x15)
  24. #define TVendcrit()   _AX = 0x101C, geninterrupt(0x15)
  25. #define TVustack()    _AX = 0x1025, geninterrupt(0x15)
  26.  
  27. /***********************************************************/
  28. /* functions that are just aliases of others               */
  29. /***********************************************************/
  30.  
  31. #define TVwin_hcur(handle) TVputchar(handle,0,0)
  32. #define TVunlock(mbx)      TVmbx_close(mbx)
  33. #define TVwin_blanks(win,count) TVwin_repchar(win,' ',count)
  34.  
  35. /***********************************************************/
  36. /* functions that need to override default library funcs   */
  37. /***********************************************************/
  38.  
  39. #define malloc  _TV_malloc
  40. #define calloc  _TV_calloc
  41. #define realloc _TV_realloc
  42. #define free    _TV_free
  43.  
  44. /***********************************************************/
  45. /* Manifest constants for TVposwin()                       */
  46. /***********************************************************/
  47.  
  48. /* select a horizontal position ... */
  49. #define PW_HCURR     0
  50. #define PW_HCENTER   1
  51. #define PW_LEFT      2
  52. #define PW_RIGHT     3
  53. /* ... and a vertical position by ORing them together */
  54. #define PW_VCURR     0
  55. #define PW_VCENTER   4
  56. #define PW_TOP       8
  57. #define PW_BOTTOM   12
  58. /* optionally, choose not to refresh the screen right away */
  59. #define PW_NOREDRAW 16
  60.  
  61. /***********************************************************/
  62. /* Constants for TVkbd_setflags() & TVkbd_clrflags()       */
  63. /***********************************************************/
  64.  
  65. #define KBD_FIELDMODE 1
  66. #define KBD_ACTIVE    2
  67.  
  68. /***********************************************************/
  69. /* Constants for TVwin_scroll() and TVfld_scroll()         */
  70. /***********************************************************/
  71.  
  72. #define SCRL_UP               0
  73. #define SCRL_DOWN             1
  74. #define SCRL_LEFT             2
  75. #define SCRL_RIGHT            3
  76.  
  77. /***********************************************************/
  78. /* Constants for TVfld_build_header() and type FT_HEADER   */
  79. /***********************************************************/
  80.  
  81. /* screen types (OR together to get desired behavior) */
  82. #define F_NOREAD     0  /* TVkbd_read() returns no data */
  83. #define F_READARRAY  1  /* read returns packed array of characters */
  84. #define F_READALL    2  /* read returns var-length records of all fields */
  85. #define F_READNEW    3  /* read returns var-length records of modified fields */
  86. #define F_RIGHTBUTTON 0x10 /* right mouse button terminates entry */
  87. #define F_LEFTBUTTON 0x20  /* left mouse button terminates entry */
  88. #define F_ALLOWKBD   0x40  /* menu choices can be made by keystrokes as well as by point-and-click */
  89.  
  90. /***********************************************************/
  91. /* Constants for TVfld_build_entry() and typedef FT_ENTRY  */
  92. /***********************************************************/
  93.  
  94. /* field types */
  95. #define F_NONENTRY  0x00
  96. #define F_MENUECHO  0x40
  97. #define F_FILLIN    0x80
  98. #define F_MENU      0xC0
  99.  
  100. /* field modifiers for F_FILLIN (OR together) */
  101. #define F_BEEP      0x80   /* beep when field is full */
  102. #define F_NEXT      0x40   /* move to next field when field full */
  103. #define F_NUMBER    0x20   /* enter text from right to left, for numbers */
  104. #define F_UPPER     0x10   /* force input to uppercase */
  105. #define F_CLEAR     0x08   /* clear old contents on first keystroke */
  106.  
  107. /***********************************************************/
  108. /*  Other predefined constants                             */
  109. /***********************************************************/
  110.  
  111. /* Predefined Message Numbers: */
  112. #define OBJECT_MSG       0       /* Return Object Handle */
  113. #define NEW_MSG          1       /* Create New Object */
  114. #define FREE_MSG         2       /* Free Object */
  115. #define ADDR_MSG         3       /* Return Handle of Object */
  116. #define DIR_MSG          3       /* Get Panel File Directory */
  117. #define READ_MSG         4       /* Return Next Logical record (I/O) */
  118. #define APPLY_MSG        4       /* Apply Panel to Window Object */
  119. #define WRITE_MSG        5       /* Write String to Object */
  120. #define SIZE_MSG         8       /* Return Size of Object */
  121. #define LEN_MSG          9       /* Return Length of Object */
  122. #define ADDTO_MSG       10      /* Add To Value of Object */
  123. #define SUBFROM_MSG     11      /* Subtract From Value of Object */
  124. #define OPEN_MSG        12      /* Open Object for Use (I/O) */
  125. #define CLOSE_MSG       13      /* Close Object (I/O) */
  126. #define ERASE_MSG       14      /* Erase Object (I/O) */
  127. #define STATUS_MSG      15      /* Return Status of Object (I/O) */
  128. #define EOF_MSG         16      /* Return Object End of File Status (I/O) */
  129. #define AT_MSG          17      /* Position Object Cursor (I/O) */
  130. #define SETSCALE_MSG    17      /* Set Pointer Scaling Factors */
  131. #define SETNAME_MSG     17      /* Assign name to mailbox */
  132. #define READN_MSG       18      /* Return Next n Byte from Object (I/O) */
  133. #define GETSCALE_MSG    18      /* Get Pointer Scaling Factors */
  134. #define REDRAW_MSG      19      /* Redraw Object (WINDOW) */
  135. #define SETICON_MSG     19      /* Specify Pointer Icon */
  136. #define SETESC_MSG      20      /* Define User Escape */
  137. #define LOCK_MSG        20      /* Request Exclusive Access */
  138.  
  139. /* Object Modifiers: */
  140. #define TOS             0       /* Use Contents of Top of Stack as Object */
  141. #define ME              1       /* Use Requesting Task's WINDOW as Object */
  142. #define MAILTOS         2       /* Use MAILBOX(tos) as Object */
  143. #define MAILME          3       /* Use MAILBOX(me) as Object */
  144. #define KEYTOS          4       /* Use KEYBOARD(tos) as Object */
  145. #define KEYME           5       /* Use KEYBOARD(me) as Object */
  146. #define OBJQTOS         6       /* Use OBJECTQ(tos) as Object */
  147. #define OBJQME          7       /* Use OBJECTQ(me) as Object */
  148. #define WINDOW_CLASS    8    /* Use WINDOW Class as Object */
  149. #define MAILBOX_CLASS    9    /* Use MAILBOX Class as Object */
  150. #define KEYBOARD_CLASS    10    /* Use KEYBOARD Class as Object */
  151. #define TIMER_CLASS     11      /* Use TIMER Class as Object */
  152. #define POINTER_CLASS    15    /* Use POINTER Class as Object */
  153. #define PANEL_CLASS     16      /* Use PANEL Class as Object */
  154.  
  155. /* Logical Text Attributes: */
  156. #define NORMAL          1
  157. #define NORMAL_HILITE    2
  158. #define HELP            3
  159. #define HELP_HILITE     4
  160. #define ERROR           5
  161. #define ERROR_HILITE    6
  162. #define EMPHASIZED      7
  163. #define MARK            8
  164. /* ADD this to get reverse version of one of the above logical attributes */
  165. #define REVERSE_VIDEO   8
  166.  
  167. /***********************************************************/
  168. /*               useful shorthands                         */
  169. /***********************************************************/
  170.  
  171. #ifndef NIL
  172. #  define NIL (OBJECT) 0
  173. #endif NIL
  174.  
  175. #ifndef FALSE
  176. #  define FALSE 0
  177. #endif FALSE
  178.  
  179. #ifndef TRUE
  180. #  define TRUE !FALSE
  181. #endif TRUE
  182.  
  183. /***********************************************************/
  184. /*  Type definitions used by library                       */
  185. /***********************************************************/
  186.  
  187. typedef struct {             /* send message parameter list */
  188.         WORD num_args;       /* number of arguments */
  189.         DWORD arg[9];        /* 32-bit argument(s) */
  190. } PARMLIST;
  191.  
  192. typedef struct {             /* short message parameter list */
  193.    WORD  num_args ;
  194.    DWORD arg[1] ;
  195. } PARMLIST1 ;
  196.  
  197. typedef struct {             /* short message parameter list */
  198.    WORD  num_args ;
  199.    DWORD arg[2] ;
  200. } PARMLIST2 ;
  201.  
  202. typedef struct {             /* short message parameter list */
  203.    WORD  num_args ;
  204.    DWORD arg[3] ;
  205. } PARMLIST3 ;
  206.  
  207. typedef struct {             /* short message parameter list */
  208.    WORD  num_args ;
  209.    DWORD arg[4] ;
  210. } PARMLIST4 ;
  211.  
  212. typedef struct {             /* short message parameter list */
  213.    WORD  num_args ;
  214.    DWORD arg[8] ;
  215. } PARMLIST8 ;
  216.  
  217. typedef struct    /* field table header */
  218.    {
  219.    BYTE numfields ;
  220.    BYTE type ;
  221.    int unknown ;   /* apparently always zero */
  222.    BYTE curr_attr ;
  223.    BYTE selected_attr ;
  224.    } FT_HEADER ;
  225.  
  226. typedef struct    /* field table entry, one for each field on screen */
  227.    {
  228.    BYTE upleftrow, upleftcol, lowrightrow, lowrightcol ;
  229.    BYTE type ;
  230.    BYTE modifier ;
  231.    BYTE status ;
  232.    BYTE key2 ;
  233.    } FT_ENTRY ;
  234.  
  235. /*-------------------------------------------------------*/
  236. /* format of message which is sent on async notification */
  237. /* ANY module using this MUST have alignment set to byte */
  238. /* (-a- for TCC)                                         */
  239.  
  240. typedef struct
  241.    {
  242.    BYTE event ;  /* which event happened? */
  243.    union {
  244.       struct                 /* window was moved */
  245.          {
  246.          OBJECT window ;
  247.          char   row ;
  248.          char   col ;
  249.          } movement ;
  250.       struct                 /* window was resized */
  251.          {
  252.          OBJECT window ;
  253.          BYTE   rows ;
  254.          BYTE   cols ;
  255.          } resizing ;
  256.       struct                 /* window was scrolled */
  257.          {
  258.          OBJECT window ;
  259.          char   mouse_row ;
  260.          char   mouse_col ;
  261.          char   unknown ;
  262.          signed char direction ;
  263.          } scrolling ;
  264.       struct                 /* window was requested to close */
  265.          {
  266.          OBJECT window ;
  267.          char   mouse_row ;
  268.          char   mouse_col ;
  269.          char   unknown ;
  270.          } closing ;
  271.       struct                 /* help requested on window */
  272.          {
  273.          OBJECT window ;
  274.          char   mouse_row ;
  275.          char   mouse_col ;
  276.          char   unknown ;
  277.          } help ;
  278.       BYTE video_mode ;      /* video mode changed */
  279.       struct                 /* scissors selected */
  280.          {
  281.          OBJECT window ;
  282.          BYTE   up_left_row ;
  283.          BYTE   up_left_col ;
  284.          char   unknown ;
  285.          OBJECT mailbox ;
  286.          BYTE   height ;
  287.          BYTE   width ;
  288.          } scissors ;
  289.       } msg ;
  290.    BYTE pad ;     /* needed for TVreadmail() */
  291.    } NOTIFY_MSG ;
  292.  
  293.  
  294. /*-------------------------------------------------------*/
  295. /* format of .DVP file (superset of TopView .PIF file)   */
  296.  
  297. typedef struct
  298.    {
  299.    BYTE unknown0 ;            /* I see 0 always */
  300.    BYTE checksum ;            /* makes sum of bytes of .PIF file equal zero */
  301.    char program_name[30] ;    /* blank-padded */
  302.    WORD max_memory ;          /* in K */
  303.    WORD min_memory ;          /* in K */
  304.    char executable_name[64] ; /* blank-padded */
  305.    BYTE data_drive ;          /* 0 = default, else drive letter ('A',...)
  306.    char data_directory[64] ;  /* ASCIZ */
  307.    char parameters[64] ;      /* ASCIZ */
  308.    BYTE video_mode ;          /* 7Fh = use current */
  309.    BYTE num_text_pages ;
  310.    BYTE lowest_int ;          /* number of lowest interrupt program changes */
  311.    BYTE highest_int ;         /* number of highest interrupt program changes */
  312.    BYTE max_win_height ;
  313.    BYTE max_win_width ;
  314.    BYTE starting_row ;        /* 0 = use default */
  315.    BYTE starting_col ;        /* 0 = use default */
  316.    WORD total_overhead_RAM ;  /* how many K to allocate for system RAM */
  317.                               /* (= requested + amt needed for screen buffer) */
  318.    char shared_program[64] ;  /* ASCIZ */
  319.    char shared_prg_data[64] ; /* ASCIZ */
  320.    BYTE flags1 ;              /* bit 7 = set if writes directly to screen */
  321.                               /* bit 6 = set if runs only in foreground */
  322.                               /* bit 5 = set if uses math coprocessor */
  323.                               /* bit 4 = set if "Keyboard Conflict" = 4 */
  324.                               /* bit 3 = set if */
  325.                               /* bit 2 = set if */
  326.                               /* bit 1 = set if */
  327.                               /* bit 0 = set if can be swapped out */
  328.    BYTE unknown170h ;
  329. /* everything up to this point is identical to a TopView .PIF file */
  330. /* the remainder is unique to a DESQview .DVP file.  Note that there */
  331. /* is some duplication of information */
  332.    char open_keys[2] ;
  333.    WORD script_buffer_size ;  /* in bytes */
  334.    BYTE flags2 ;              /* bit 7 =  */
  335.                               /* bit 2 = set if "Writes directly..." = '!' */
  336.    BYTE unknown176h ;
  337.    BYTE uses_own_colors ;     /* 1 = yes,  0 = no */
  338.    BYTE unknown178h ;
  339.    BYTE unknown179h ;
  340.    BYTE unknown17Ah ;
  341.    BYTE unknown17Bh ;
  342.    BYTE close_on_exit ;       /* 1 = close on exit, 0 = don't */
  343.    BYTE unknown17Dh ;
  344.    BYTE unknown17Eh ;
  345.    BYTE unknown17Fh ;
  346.    BYTE starting_height ;     /* 0 = use default */
  347.    BYTE starting_width ;      /* 0 = use default */
  348.    WORD max_expanded_mem ;    /* in K, FFFFh = no limit */
  349.    BYTE flags3 ;              /* bit 7 =  */
  350.                               /* bit 6 =  */
  351.                               /* bit 5 =  */
  352.                               /* bit 4 = 1 don't allow close window cmd */
  353.                               /* bit 3 = set if "Runs only in fg" = ' ' */
  354.                               /* bit 2 =  */
  355.                               /* bit 1 =  */
  356.                               /* bit 0 =  */
  357.    BYTE keyboard_conflict ;   /* 0 thru 4 */
  358.    BYTE num_graphics_pages ;
  359.    WORD system_RAM ;          /* amount of SYSTEM RAM requested, in K */
  360.    BYTE initial_video_mode ;  /* FFh = use current mode if compatible */
  361.    BYTE reserved[22] ;        /* currently unused */
  362.    } DVP_file ;
  363.  
  364. /***********************************************************/
  365. /* low-level functions which should not be called directly */
  366. /***********************************************************/
  367.  
  368. void far pascal _TVnotify_handler(void) ;
  369. void far pascal _TVinterrupt_handler(void) ;
  370.  
  371. /***********************************************************/
  372. /*  support functions which guard non-reentrant functions  */
  373. /***********************************************************/
  374.  
  375. void *_TV_malloc(size_t size) ;
  376. void *_TV_calloc(size_t nitems, size_t size) ;
  377. void *_TV_realloc(void *block, size_t size) ;
  378. void _TV_free(void *block) ;
  379.  
  380. /***********************************************************/
  381. /*                 the API function calls                  */
  382. /***********************************************************/
  383.  
  384. int pascal TVinit(void) ;
  385. int pascal DVinit(void) ;
  386. void pascal DVexit(void) ;
  387. void pascal TVexit(void) ;
  388. WORD pascal DVprogname(void) ;
  389. int pascal DVappnum(void) ;
  390. void pascal DVdbgpoke(char c) ;
  391. void pascal DVapilevel(int level, int mod) ;
  392. WORD pascal DVpushkey(int key, int scancode) ;
  393. void pascal DVjustify(int justify) ;
  394. void pascal DVcommon_mem(WORD *avail, WORD *largest, WORD *total) ;
  395. void pascal DVconv_mem(WORD *avail, WORD *largest, WORD *total) ;
  396. void pascal DVexp_mem(WORD *avail, WORD *largest, WORD *total) ;
  397. WORD pascal DVver(void) ;
  398. void pascal TVsendmsg(WORD msg_num,WORD modifier,OBJECT object_hdl,PARMLIST far *msg_args) ;
  399. void pascal TVsendmsg0(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
  400. DWORD pascal TVsendmsg1(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
  401. void pascal TVpanel_close(OBJECT panel) ;
  402. void pascal TVpanel_free(OBJECT panel) ;
  403. void pascal TVpanel_open(OBJECT panel, char *file) ;
  404. OBJECT pascal TVapp_start(void *pif, int pif_size) ;
  405. void pascal TVwin_stream(OBJECT window,BYTE *stream) ;
  406. OBJECT pascal TVwin_new(OBJECT window,int rows,int cols) ;
  407. OBJECT pascal TVmbx_sender(OBJECT mbx) ;
  408. void pascal TVmbx_clear(OBJECT mbx) ;
  409. void pascal TVmbx_close(OBJECT mbx) ;
  410. int pascal TVmbx_eof(OBJECT mbx) ;
  411. OBJECT pascal TVmbx_find(char *name) ;
  412. void pascal TVmbx_free(OBJECT mbx) ;
  413. OBJECT pascal TVmymbx(void) ;
  414. OBJECT pascal TVmbxof(OBJECT task) ;
  415. void pascal TVmbx_name(OBJECT mbx,char *name) ;
  416. OBJECT pascal TVmbx_new(void) ;
  417. void pascal TVmbx_open(OBJECT mbx) ;
  418. int pascal TVreadmail(OBJECT mbx,char *buffer,int maxsize) ;
  419. void pascal TVsendmail(OBJECT mbx,char *msg,int length) ;
  420. void pascal TVmbx_write(OBJECT mbx,int reference,int status,char *msg,int length) ;
  421. int pascal TVmbx_size(OBJECT mbx) ;
  422. int pascal TVmbx_status(OBJECT mbx) ;
  423. int pascal TVwin_read(OBJECT win,void *buffer,int maxsize) ;
  424. int pascal TVwin_nread(OBJECT win,void *buffer,int n) ;
  425. void pascal TVfld_attr(OBJECT win,int field,int attr) ;
  426. void pascal TVfld_char(OBJECT win,int field,int c) ;
  427. void pascal TVfld_clear(OBJECT win,int field) ;
  428. void pascal TVfld_cursor(OBJECT win,int field) ;
  429. void pascal TVfld_entry(OBJECT win,int field,FT_ENTRY *entry) ;
  430. void pascal TVfld_header(OBJECT win,FT_HEADER *header) ;
  431. void pascal TVfld_scroll(OBJECT win,int fld,int direction) ;
  432. int pascal TVfld_swrite(OBJECT win,int field,char *s) ;
  433. void pascal TVfld_type(OBJECT win,int fld,int type) ;
  434. int pascal TVfld_write(OBJECT win,int field,char *s) ;
  435. int pascal TVqry_field(OBJECT win,int fld,int bufsize,char *buffer) ;
  436. void pascal TVqry_entry(OBJECT win,int fld,FT_ENTRY *entry) ;
  437. void pascal TVqry_header(OBJECT win,FT_HEADER *header) ;
  438. unsigned int pascal TVqry_fieldsize(OBJECT win,int fld) ;
  439. int pascal TVqry_type(OBJECT win,int fld) ;
  440. void pascal TVgetbuf(OBJECT win,OBJECT *buffer, int *size, int *flag) ;
  441. void pascal TVtimer_begin(OBJECT timer, DWORD time) ;
  442. void pascal TVtimer_close(OBJECT timer) ;
  443. void pascal TVtimer_free(OBJECT timer) ;
  444. void pascal TVtimer_start(OBJECT timer) ;
  445. void pascal TVtimer_stop(OBJECT timer) ;
  446. void pascal TVtimer_set(OBJECT timer,int hour,int minute,int second,int hundredth) ;
  447. DWORD pascal TVtimer_elapsed(OBJECT timer) ;
  448. DWORD pascal TVtimer_len(OBJECT timer) ;
  449. DWORD pascal TVtimer_wait(OBJECT timer) ;
  450. OBJECT pascal TVtimer_new(void) ;
  451. int pascal TVtimer_status(OBJECT timer) ;
  452. WORD pascal TVgetbit(void far (*handler)(void)) ;
  453. void pascal TVfreebit(WORD bit) ;
  454. void pascal TVsetbit(WORD bit) ;
  455. int pascal TVisobj(OBJECT obj) ;
  456. void pascal TVapp_goback(OBJECT win) ;
  457. void pascal TVapp_gofore(OBJECT win) ;
  458. void pascal TVapp_free(OBJECT win) ;
  459. void pascal TVapp_hide(OBJECT win) ;
  460. void pascal TVapp_show(OBJECT win) ;
  461. void pascal TVapp_suspend(OBJECT win) ;
  462. void pascal TVkbd_setflags(OBJECT kbd,int flags) ;
  463. void pascal TVkbd_clrflags(OBJECT kbd,int flags) ;
  464. void pascal TVkbd_clear(OBJECT kbd) ;
  465. void pascal TVkbd_close(OBJECT kbd) ;
  466. void pascal TVkbd_setesc(OBJECT kbd,void far (*func)(void)) ;
  467. void pascal TVkbd_free(OBJECT kbd) ;
  468. void pascal TVkbd_open(OBJECT kbd,OBJECT win) ;
  469. void pascal TVkbd_write(OBJECT kbd,char *data,int size,int scancode) ;
  470. OBJECT pascal TVmykbd(void) ;
  471. OBJECT pascal TVkbdof(OBJECT task) ;
  472. OBJECT pascal TVkbd_new(void) ;
  473. int pascal TVkbd_read(OBJECT kbd,char *buffer,int maxsize) ;
  474. int pascal TVkbd_messages(OBJECT kbd) ;
  475. int pascal TVkbd_status(OBJECT kbd) ;
  476. int pascal TVerrormsg(OBJECT win, char *string,int tone,int button,int rows,int cols) ;
  477. OBJECT pascal TVlocate(OBJECT win,int row,int col) ;
  478. void pascal TVlock(OBJECT mbx) ;
  479. void pascal TVwin_allow(OBJECT win,int command) ;
  480. void pascal TVwin_disallow(OBJECT win,int command) ;
  481. void pascal TVwin_async(OBJECT win,void far (*func)(void)) ;
  482. void pascal TVwin_notify(OBJECT win,int event) ;
  483. void pascal TVwin_cancel(OBJECT win,int event) ;
  484. void pascal TVwin_bottom(OBJECT win) ;
  485. void far * pascal TVgetmem(unsigned amt) ;
  486. void pascal TVputmem(void far *block) ;
  487. void pascal TVforeonly(OBJECT taskwin,int foreonly) ;
  488. void pascal TVwin_minsize(OBJECT win,int rows,int cols) ;
  489. void pascal TVwin_maxsize(OBJECT win,int rows,int cols) ;
  490. void cdecl TVwin_reorder(OBJECT win,unsigned first,...) ;
  491. void pascal TVwin_top(OBJECT win) ;
  492. void pascal TVwin_topsys(OBJECT win) ;
  493. void pascal TVobq_add(OBJECT obq, OBJECT item) ;
  494. OBJECT pascal TVobject(WORD which) ;
  495. int pascal TVobq_size(OBJECT obq) ;
  496. DWORD pascal TVobq_status(OBJECT obq) ;
  497. void pascal TVobq_clear(OBJECT obq) ;
  498. void pascal TVobq_close(OBJECT obq) ;
  499. OBJECT pascal TVmyobq(void) ;
  500. OBJECT pascal TVobqof(OBJECT task) ;
  501. void pascal TVobq_open(OBJECT obq) ;
  502. OBJECT pascal TVobq_read(OBJECT obq) ;
  503. void pascal TVobq_remove(OBJECT obq, OBJECT item) ;
  504. OBJECT pascal TVpanel_new(void) ;
  505. DWORD pascal TVpanel_status(OBJECT panel) ;
  506. int pascal TVpanel_size(OBJECT panel) ;
  507. void pascal TVptr_open(OBJECT pointer, OBJECT win) ;
  508. void pascal TVptr_close(OBJECT pointer) ;
  509. void pascal TVptr_erase(OBJECT pointer) ;
  510. void pascal TVptr_free(OBJECT pointer) ;
  511. void pascal TVptr_icon(OBJECT pointer, char symbol) ;
  512. OBJECT pascal TVptr_new(void) ;
  513. void pascal TVptr_setflags(OBJECT pointer,WORD flags) ;
  514. int pascal TVptr_messages(OBJECT pointer) ;
  515. DWORD pascal TVptr_status(OBJECT pointer) ;
  516. void pascal TVptr_clrflags(OBJECT pointer,WORD flags) ;
  517. void pascal TVptr_goto(OBJECT ptr,int row,int col) ;
  518. void pascal TVptr_setscale(OBJECT ptr,int x,int y) ;
  519. void pascal TVptr_getscale(OBJECT ptr,int *x,int *y) ;
  520. int pascal TVptr_read(OBJECT win,void *buffer,int maxsize) ;
  521. void pascal TVposwin(OBJECT win, OBJECT parent, int pos) ;
  522. void pascal TVputchar(OBJECT win, int c, int attribute) ;
  523. void pascal TVwin_point(OBJECT win,OBJECT ptr) ;
  524. int pascal TVqry_attr(OBJECT win) ;
  525. int pascal TVqry_color(OBJECT win,int attr) ;
  526. int pascal TVqry_ctrl(OBJECT win) ;
  527. void pascal TVqry_cursor(OBJECT win,int *row, int *col) ;
  528. int pascal TVqry_frattr(OBJECT win) ;
  529. int pascal TVqry_frame(OBJECT win) ;
  530. int pascal TVqry_hidden(OBJECT win) ;
  531. int pascal TVqry_logattr(OBJECT win) ;
  532. int pascal TVqry_leave(OBJECT win) ;
  533. void pascal TVqry_lsize(OBJECT win,int *rows, int *cols) ;
  534. void pascal TVqry_origin(OBJECT win,int *row, int *col) ;
  535. void pascal TVqry_position(OBJECT win,int *row, int *col) ;
  536. void pascal TVqry_size(OBJECT win,int *rows,int *cols) ;
  537. void far *TVshadow(void) ;
  538. void far *DVshadow_start(int *rows,int *cols) ;
  539. void DVshadow_stop(void) ;
  540. void TVupdate(void far *first, WORD count) ;
  541. void pascal TVsleep(DWORD time) ;
  542. void pascal TVsound(int freq, int duration) ;
  543. void pascal TVfreetask(OBJECT task) ;
  544. OBJECT pascal TVmytask(void) ;
  545. void pascal TVinterrupt(OBJECT task,void far (*func)(void)) ;
  546. OBJECT pascal TVnew_task(OBJECT parent,char *title,int row,int col,int rows,int cols,char *stack,int stacksize,void (*startaddr)(int)) ;
  547. OBJECT cdecl TVapp_new(OBJECT win,int row,int col,int rows,int cols,char *program, ...) ;
  548. void pascal TVposttask(OBJECT task) ;
  549. void pascal TVstarttask(OBJECT task) ;
  550. void pascal TVstoptask(OBJECT task) ;
  551. WORD pascal TVver(void) ;
  552. void pascal TVwin_attach(OBJECT win) ;
  553. void pascal TVwin_detach(OBJECT win) ;
  554. void pascal TVwin_attr(OBJECT win,int attr) ;
  555. void pascal TVwin_clear(OBJECT win) ;
  556. void pascal TVwin_color(OBJECT win,int logattr,int physattr) ;
  557. void pascal TVwin_ctrl(OBJECT win,int ctrl) ;
  558. void pascal TVwin_cursor(OBJECT win,int row,int col) ;
  559. int pascal TVwin_eof(OBJECT win) ;
  560. void pascal TVwin_frattr(OBJECT win,int attr) ;
  561. void pascal TVwin_fill(OBJECT win,char c) ;
  562. void pascal TVwin_frame(OBJECT win,int frame) ;
  563. void pascal TVwin_free(OBJECT win) ;
  564. OBJECT pascal TVmywindow(void) ;
  565. void pascal TVwin_hide(OBJECT win) ;
  566. void pascal TVwin_unhide(OBJECT win) ;
  567. OBJECT pascal TVcreate_window(OBJECT win,char *title,int rows,int cols, int unknown1, DWORD unknown3) ;
  568. void pascal TVwin_logattr(OBJECT win,int logical) ;
  569. void pascal TVwin_leave(OBJECT win, int leave) ;
  570. void pascal TVwin_lsize(OBJECT win,int rows,int cols) ;
  571. void pascal TVwin_move(OBJECT win,int row,int col) ;
  572. void pascal TVwin_origin(OBJECT win,int row,int col) ;
  573. void pascal TVredrawwin(OBJECT win) ;
  574. int cdecl TVwin_printf(OBJECT win,char *format, ...) ;
  575. void pascal TVwin_redraw(OBJECT win) ;
  576. void pascal TVwin_repattr(OBJECT win,int attr,int count) ;
  577. void pascal TVwin_repchar(OBJECT win,int c,int count) ;
  578. void pascal TVwin_resize(OBJECT win,int rows,int cols) ;
  579. int pascal TVwin_size(OBJECT win) ;
  580. void pascal TVwin_swrite(OBJECT win,char *string) ;
  581. void pascal TVwin_title(OBJECT win,char *title) ;
  582. int pascal TVwin_width(OBJECT win) ;
  583. void pascal TVwin_writea(OBJECT win,char *attr,int len) ;
  584. void pascal TVwin_writeca(OBJECT win,char *chars,char *attr,int len) ;
  585. void pascal TVwin_write(OBJECT win,char *string,int len) ;
  586. void pascal TVqry_title(OBJECT win,char *title,int size) ;
  587. void pascal TVwin_atread(OBJECT win,int read_attr) ;
  588. int pascal TVqry_atread(OBJECT win) ;
  589. void pascal TVwin_gotoxy(OBJECT win,int x,int y) ;
  590. int pascal TVkbd_getc(OBJECT kbd) ;
  591. void pascal TVfld_point(OBJECT win,int fld,int x,int y) ;
  592. void pascal TVfld_reset(OBJECT win) ;
  593. void pascal TVfld_altmode(OBJECT kbd,int altmode) ;
  594. BYTE * pascal TVfld_build_header(int num_fields,int screen_type,int curr_attr,int selected_attr) ;
  595. void pascal TVfld_build_entry(BYTE *stream,int field,int upleftrow,int upleftcol,
  596.                               int lowrightrow,int lowrightcol,int type,int modifier,
  597.                               int status,int key2) ;
  598. void pascal TVfld_build_color(BYTE *stream,int field,int attr) ;
  599. void pascal TVfld_marker(OBJECT win,char marker) ;
  600. void pascal TVwin_scroll(OBJECT win,int top,int left,int height,int width, int direction) ;
  601.